package com.rxmvp.baselibrary.customview;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

import com.rxmvp.baselibrary.R;


/**
 *
 *
 * Created by huangRZ on 2016/9/5.
 */
public class ProgressArc extends View {

    /** 关于圆形进度条的所有属性 */
    private int roundColor; //圆弧背景颜色
    private int roundProgressColor; //圆弧前景颜色（进度条颜色）
    private float roundWidth; //圆弧的宽度

    private int innerTextColor; //圆弧内文字颜色
    private float innerTextSize; //圆弧内文字大小

    private boolean isTextDisplay; //是否显示文本
    private int style;  //显示样式（圆弧（STROKE）还是整个圆(FILL)）

    public static final int STROKE = 0;
    public static final int FILL = 1;

    /** 需要用到的一些参数 */
    private Paint paint; //画笔

    private int max; //进度最大值
    private int startProgress = 0;
    private int mCurrentProgress; //当前进度

    private OnProgressChangeListener mProgressChangeListener;// 进度改变的监听

    public ProgressArc(Context context) {
        this(context, null);
    }

    public ProgressArc(Context context, AttributeSet attrs) {
        this(context, attrs,0);
    }

    public ProgressArc(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initAttribute(context, attrs);
    }

    private void initAttribute(Context context, AttributeSet attrs) {
        /** 获取自定义属性和默认值 */
        TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.ProgressArc);

        array.getColor(R.styleable.ProgressArc_roundColor, Color.rgb(0,0,0));
        array.getColor(R.styleable.ProgressArc_roundProgressColor, Color.rgb(255,255,255));
        array.getColor(R.styleable.ProgressArc_innerTextColor, Color.rgb(255,255,255));
        array.getBoolean(R.styleable.ProgressArc_isTextDisplay, false);
        array.getInt(R.styleable.ProgressArc_innerTextSize, 16);
        array.getInt(R.styleable.ProgressArc_style, STROKE);

        array.recycle();//循环该数组，等待下一次调用时重复利用，在这期间不能再使用这个数组
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

    /** 必须要实现的方法 */
    @Override
    protected void onDraw(Canvas canvas) {

        /** 获取中心x坐标 */
        int center = getWidth()/2;

        /** 计算出要画的圆弧的笔的笔尖所有的圆弧的半径 */
        int radius = (int) (center - roundWidth/2);

        /** 设置画圆弧背景颜色的画笔颜色 */
        paint.setColor(roundColor);

        /** 设置画笔的粗细 */
        paint.setStrokeWidth(roundWidth);

        /** 画出 */

    }

    public interface OnProgressChangeListener{

    }
}
